package org.xlp;

import org.xlp.bean.base.IBeanWrapper;
import org.xlp.db.bridge.annotation.Mapper;
import org.xlp.db.tableoption.annotation.XLPEntity;
import org.xlp.javabean.annotation.Bean;

import java.lang.reflect.Method;
import java.util.List;

/**
 * Description:
 * <br/>date: 2024/4/16 15:34
 *
 * @version 1.0
 * @author: xlp
 */
@Bean
public interface BT extends IBeanWrapper {
    @Mapper(parentId = "23", id = "25")
    void test(List<Object> p, int a) ;

    /**
     * 代理对象函数执行前需要执行的操作
     *
     * @param method 被代理对象的方法对象
     * @param params 被代理对象方法的参数
     */
    @Override
    default void beforeExecute(Method method, Object[] params) {
        System.out.println("beforeExecute3");
    }

    /**
     * 代理对象函数执行后需要执行的操作
     *
     * @param method 被代理对象的方法对象
     * @param params 被代理对象方法的参数
     */
    @Override
    default void afterExecute(Method method, Object[] params) {
        System.out.println("afterExecute2");
    }

    /**
     * 代理对象函数执行抛出异常是需要执行的操作
     *
     * @param method    被代理对象的方法对象
     * @param params    被代理对象方法的参数
     * @param throwable 被代理对象方法抛出的异常
     */
    @Override
    default void throwExecute(Method method, Object[] params, Throwable throwable) {
        System.out.println("throwExecute2");
    }
}
